[NET] front: Restore 16 bytes of reservation
authorkaf24@localhost.localdomain <kaf24@localhost.localdomain>
Sat, 12 Aug 2006 14:56:00 +0000 (15:56 +0100)
committerkaf24@localhost.localdomain <kaf24@localhost.localdomain>
Sat, 12 Aug 2006 14:56:00 +0000 (15:56 +0100)
By replacing dev_alloc_skb with alloc_skb we need to do the 16-byte
reservation ourselves.  Also, it's unnecessary to align the size
when calling alloc_skb since the alignment is an implementation
detail of alloc_skb and it already takes care of it for us.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c

index 1556d2299cf6ab6eebd7fb6fe6fc0f1320146a0e..ef6e134a7dea54853c8245f0f957aa05b0687aa8 100644 (file)
@@ -615,7 +615,7 @@ static void network_alloc_rx_buffers(struct net_device *dev)
                 * necessary here.
                 * 16 bytes added as necessary headroom for netif_receive_skb.
                 */
-               skb = alloc_skb(SKB_DATA_ALIGN(RX_COPY_THRESHOLD + 16),
+               skb = alloc_skb(RX_COPY_THRESHOLD + 16,
                                GFP_ATOMIC | __GFP_NOWARN);
                if (unlikely(!skb))
                        goto no_skb;
@@ -633,6 +633,7 @@ no_skb:
                        break;
                }
 
+               skb_reserve(skb, 16); /* mimic dev_alloc_skb() */
                skb_shinfo(skb)->frags[0].page = page;
                skb_shinfo(skb)->nr_frags = 1;
                __skb_queue_tail(&np->rx_batch, skb);